home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 49 / Amiga Format CD49 (2000-01-17)(Future Publishing)(GB)(Track 1 of 3)[!][issue 2000-02].iso / -serious- / sound / samplecruncher / interface.lha / rexx / scruncher.rexx
OS/2 REXX Batch file  |  1999-06-04  |  6KB  |  220 lines

  1. /*************************************************************************/
  2. /* $VER: Sample scruncer interface                                       */
  3. /*************************************************************************/
  4. /* assign scruncher: work:temp/scruncher */
  5.  
  6.  
  7. gui_file = 'ram:rexx/gui/scruncher.gui'
  8.  
  9. IF EXISTS("libs:rexxsupport.library") THEN DO
  10.     IF ~SHOW("L","rexxsupport.library") THEN
  11.         IF ~ADDLIB("rexxsupport.library",0,-30,0) THEN EXIT
  12. END
  13. ELSE EXIT
  14.  
  15. IF EXISTS("libs:rexxtricks.library") THEN DO
  16.     IF ~SHOW("L","rexxtricks.library") THEN
  17.         IF ~ADDLIB("rexxtricks.library",0,-30) THEN EXIT
  18. END
  19. ELSE EXIT
  20.  
  21. OPTIONS RESULTS
  22. OPTIONS FAILAT 10
  23.  
  24. SIGNAL ON SYNTAX
  25. SIGNAL ON FAILURE 
  26.  
  27. /* Get the GUI file from the user */
  28. IF gui_file = '' THEN
  29.   DO
  30.     gui_file=rtfilerequest('REXX:gui',,'Varexx Request','_Load','rt_reqpos=reqpos_centerscr rtfi_matchpat=#?.gui rtfi_flags=freqf_patgad')
  31.     IF gui_file = '' THEN EXIT
  32.   END
  33.  
  34. /* Check Varexx is loaded if not load it */
  35.  
  36. IF SHOW( 'p', 'VAREXX' ) ~= 1 THEN DO
  37.     ADDRESS COMMAND "run >NIL: varexx"
  38.     ADDRESS COMMAND "WaitForPort VAREXX"
  39. END
  40. ADDRESS VAREXX
  41.  
  42. IF OPENPORT("SCRUNCH") = 0 THEN DO
  43.     say "Could not open a port.  Varexx Error."
  44.     EXIT
  45. END
  46.  
  47. 'load ' gui_file 'SCRUNCH PS=OCTAMED'  /*go to octamed screen */
  48.  
  49. vhost = RESULT
  50. ADDRESS VALUE vhost
  51.  
  52. show
  53.  
  54. /**************************************************************************/
  55. /* MAIN LOOP -- Check for GUI events                                      */
  56. /**************************************************************************/
  57.  
  58. /* set defaults */
  59.  
  60.          /* AUTO update listview from "scruncher/transforms" */
  61.  
  62.          ADDRESS value vhost
  63.          dirstring = SHOWDIR( 'scruncher:transforms' , 'f' )
  64.          i = 1
  65.          DO while dirstring ~= ""
  66.             PARSE VAR dirstring dir.i dirstring
  67.             i = i + 1
  68.             END
  69.          dir.COUNT = i - 1
  70.          dir.SELECT = i - 1
  71.          setlist listview CLEAR STEM dir
  72.          settext input ""
  73.  
  74. islooped = 0
  75. transform = "transform.dry"
  76. showing = 0
  77.  
  78. DO FOREVER
  79.    CALL WAITPKT("SCRUNCH")
  80.    packet = GETPKT("SCRUNCH")
  81.    IF packet ~= '00000000'x THEN DO
  82.  
  83.       class = GETARG(packet)
  84.       IF class = "CLOSEWINDOW" THEN LEAVE
  85.  
  86.       IF class = "GET" THEN DO
  87.          settext output "Updating file list..."
  88.          ADDRESS value vhost
  89.          dirstring = SHOWDIR( 'scruncher:transforms' , 'f' )
  90.          i = 1
  91.          DO while dirstring ~= ""
  92.             PARSE VAR dirstring dir.i dirstring
  93.             i = i + 1
  94.             END
  95.          dir.COUNT = i - 1
  96.          dir.SELECT = i - 1
  97.          setlist listview CLEAR STEM dir
  98.          settext input ""
  99.          END
  100.  
  101.       IF class = "COMPARE" THEN DO
  102.          settext output "Alternate sample loaded..."
  103.          ADDRESS octamed_rexx
  104.          IN_LOAD 't:compare.1' NOSLIST
  105.          IN_SETNAME instname
  106.          ADDRESS COMMAND 'rename t:compare.1 t:compare.3'
  107.          ADDRESS COMMAND 'rename t:compare.2 t:compare.1'
  108.          ADDRESS COMMAND 'rename t:compare.3 t:compare.2'
  109.          IF islooped = 1 THEN DO
  110.             SA_SETLOOP loop_st loop_end
  111.             END
  112.          ADDRESS VALUE vhost
  113.          END
  114.  
  115.       IF class = "PREV" THEN DO
  116.          ADDRESS OCTAMED_REXX in_select prev
  117.          IF showing = 1 THEN DO
  118.             ADDRESS OCTAMED_REXX in_select curr_inst
  119.             showing = 0
  120.             END
  121.          END
  122.  
  123.       IF class = "NEXT" THEN DO
  124.          ADDRESS OCTAMED_REXX in_select next
  125.          IF showing = 1 THEN DO
  126.             ADDRESS OCTAMED_REXX in_select curr_inst
  127.             showing = 0
  128.             END
  129.          END
  130.  
  131.       IF class = "STOP" THEN DO
  132.          ADDRESS OCTAMED_REXX pl_stop
  133.          END
  134.  
  135.       IF class = "PLAY" THEN DO
  136.          ADDRESS OCTAMED_REXX sa_play d
  137.          END
  138.  
  139.  
  140.       IF LEFT( class , 8 ) = "LISTVIEW" THEN DO
  141.          drop transform comment
  142.          PARSE VAR class lv transform
  143.          transform = DELSTR( transform , 1 , 1 )
  144.          settext input transform
  145.          comment = GETCOMMENT( "scruncher:transforms/" || transform )
  146.          settext output comment
  147.          END
  148.  
  149.       IF class = "SHOW" THEN DO
  150.          ADDRESS OCTAMED_REXX
  151.          IF showing = 0 THEN DO
  152.             drop curr_inst
  153.             in_getnumber VAR curr_inst
  154.             END
  155.          in_select last
  156.          IN_LOAD 'scruncher:transforms/upramp.256' NOSLIST
  157.          drop class
  158.          class = "GO"
  159.          ADDRESS VALUE vhost
  160.          showing = 1
  161.          END
  162.  
  163.       IF class = "GO" THEN DO
  164.          settext output "Scrunching..."
  165.  
  166.          ADDRESS OCTAMED_REXX                          /* this is the scrunch sequence: */
  167.          drop instname loop_st loop_end islooped
  168.          IN_GETNAME var instname
  169.          PL_STOP
  170.  
  171.          SA_GETLOOPSTATE var islooped
  172.          IF islooped = 1 THEN DO
  173.             SA_GETLOOPSTART var loop_st
  174.             SA_GETLOOPLENGTH var loop_end
  175.             END
  176.  
  177.          IN_SAVE 't:temp.raw' RAW
  178.          ADDRESS COMMAND 'rexx:samplescruncher i=t:temp.raw o=t:temp l=scruncher:transforms/' || transform
  179.          IN_LOAD 't:temp' NOSLIST
  180.          ADDRESS COMMAND 'c:copy t:temp.raw t:compare.1'
  181.          ADDRESS COMMAND 'c:copy t:temp t:compare.2'
  182.          IN_SETNAME instname
  183.          CALL DELETE('t:temp.raw')
  184.          CALL DELETE('t:temp')
  185.  
  186.          SA_REFRESH
  187.          IF islooped = 1 THEN DO
  188.             SA_SETLOOP loop_st loop_end
  189.             END
  190.  
  191.  
  192.          ADDRESS VALUE vhost
  193.          settext output "Finished."
  194.          IF show = 1 THEN settext output comment
  195.  
  196.          END
  197.       END
  198.    END
  199.  
  200.     'hide unload'    
  201.  
  202.     CALL CLOSEPORT( "SCRUNCH" )
  203. EXIT
  204.  
  205. /* Error messages */
  206. failure:
  207.     SAY "Error code" rc "-- Line" SIGL
  208.     SAY EXTERNERROR
  209.     'hide unload'
  210.     CALL CLOSEPORT ("SCRUNCH")
  211.  
  212. EXIT
  213.  
  214. syntax:
  215.     SAY "Error" rc  "-- Line" SIGL
  216.     SAY ERRORTEXT( rc )
  217.     'hide unload'
  218.     CALL CLOSEPORT ("SCRUNCH")
  219. EXIT
  220.